﻿using System.Collections.Generic;

namespace Bricks.Validation
{

    /// <summary>
    /// 
    /// </summary>
    public interface IValidatorFacade
    {

        /// <summary>
        /// 
        /// </summary>
        /// <param name="target"></param>
        /// <returns></returns>
        IEnumerable<ValidationResult> Validate(object target);
    }

    /// <summary>
    /// 
    /// </summary>
    /// <typeparam name="TTarget"></typeparam>
    public interface IValidatorFacade<TTarget> : IValidatorFacade
    {

        /// <summary>
        /// 
        /// </summary>
        /// <param name="target"></param>
        /// <returns></returns>
        IEnumerable<ValidationResult> Validate(TTarget target);
    }

    /// <summary>
    /// 
    /// </summary>
    /// <typeparam name="TTarget"></typeparam>
    /// <typeparam name="TValidator"></typeparam>
    public interface IValidatorFacade<TTarget, TValidator> : IValidatorFacade<TTarget>
    {
    }
}
